/* Copyright 2007-2008 dnAnalytics Project.
 *
 * Contributors to this file:
 * Patrick van der Velde
 *
 * This file is part of dnAnalytics.  dnAnalytics is licensed under the 
 * Microsoft Public License. See License.txt for a complete copy of the
 * license.
 */

using System;

namespace dnAnalytics.LinearAlgebra.Solvers
{
    /// <summary>
    /// Indicates what an <c>IIterationStopCriterium</c> monitors for stop criteria. 
    /// </summary>
    public enum StopLevel
    {
        /// <summary>
        /// The <c>IIterationStopCriterium</c> monitors calculation failures in the
        /// iterative calculation.
        /// </summary>
        CalculationFailure,
        /// <summary>
        /// The <c>IIterationStopCriterium</c> monitors the calculation for signs of divergence.
        /// </summary>
        Divergence,
        /// <summary>
        /// The <c>IIterationStopCriterium</c> guards the calculation against unlimited continuation
        /// by monitoring user specified limits, e.g. the maximum number of iterations.
        /// </summary>
        StoppedWithoutConvergence,
        /// <summary>
        /// The <c>IIterationStopCriterium</c> monitors the calculation for convergence, usually
        /// based on the residuals of the calculation.
        /// </summary>
        Convergence
    }
}
